import json
import pickle
from django.shortcuts import render
# from numpy import cov
from .models import *
from django.http import HttpResponse, JsonResponse
from django.core import serializers
from cov.models import *
from .utils import query_json
from django.http import HttpResponseRedirect


# Create your views here.
def get_page(request):
    HttpResponseRedirect('./static/dist/index.html')

def get_cov(request):
    '''
    查询所有疫情数据

    '''
    data = serializers.serialize("json", Cov.objects.all())
    return HttpResponse(data)


def get_article(request):
    '''
    查询所有文章

    '''
    data = serializers.serialize("json", Knowledge.objects.all())
    return data


def get_provinceData(request):
    '''
    获取省份信息  对应表：cov_province_data
    格式：
    [
        {
          ename: 'beijing',
          name: '北京',
          value: 123,
          confirm: 456,
          heal: 789,
          dead:123
        },
        {
          ename: 'tianjin',
          name: '天津',
          value: 123,
          confirm: 456,
          heal: 789,
          dead:123
        },
     ]
    '''
    return query_json(province_data, ['name', 'value', 'confirm', 'heal', 'dead'])


def get_list(request):
    '''
    获取省份柱状排名信息  对应表：cov_province_data
    格式：
    dataName: ['河北', '吉林']
    dataValue: [19325, 23438]
    索引下标需要对应
    '''
    return query_json(province_data, ['name', 'value'])


def get_f1(request):
    '''
    获取全国数据中 治愈和死亡比例 制作饼图 对应表：cov_chinatoal
    格式：
    data: 
    [
        {
            "nowConfirm": 275984,
            "heal": 216382,
            "dead": 14378,
            "update_time": "2022-04-13T15:26:32Z"
        }
    ]   
    '''
    return query_json(ChinaToal, ['nowConfirm', 'heal', 'dead', 'update_time'])


def get_f2(request):
    '''
    获取全国数据中 全国5日治愈 制作折线图 对应表：cov_chinatoal
    格式：
    data: 
    [
        {
            "heal": 216382,
            "update_time": "2022-04-13T15:26:32Z"
        }
    ]
    '''
    return query_json(ChinaToal, ['heal', 'update_time'])


def get_f3(request):
    '''
    获取全国数据中 全国5日死亡 制作折线图 对应表：cov_chinatoal
    格式：
    data: 
    [
        {
            "heal": 216382,
            "update_time": "2022-04-13T15:26:32Z"
        }
    ]
    '''
    return query_json(ChinaToal, ['dead', 'update_time'])


def get_f4(request):
    '''
    获取全国数据中 治愈率饼图 对应表：cov_chinatoal
    格式：
    data: [
              {value: 1048, name: '累计确诊人数'},
              {value: 735, name: '目前治愈人数'},

            ]
    '''
    return query_json(ChinaToal, ['nowConfirm', 'heal', 'dead', 'update_time'])

def get_c2(request):
    '''
    获取具体省份的市区数据中 地图 对应表：cov_cov
    格式：
    data: 
    [
        {
            "update_time": "2022-04-13T15:26:32Z",
            "province": "福建",
            "city": "泉州市",
            "confirm": 1186,
            "confirm_add": 0,
            "heal": 1003,
            "dead": 0
        }
    ]
    '''
    # 定义查询字段
    province = request.GET.get("name")
    data = [
        {
            'update_time': i.update_time, 
            'province': i.province, 
            'city': i.city, 
            'confirm': i.confirm, 
            'confirm_add': i.confirm_add, 
            'heal': i.heal, 
            'dead': i.dead
        } for i in Cov.objects.filter(province=province)
    ]
        
    return JsonResponse(data, safe=False)

def get_article(request):
    '''
    获取具体省份的市区数据中 地图 对应表：cov_Knowleage
    格式：
    data: 
    [
        {
            "title": "标题",
            "text": "链接",
        }
    ]
    '''
    return query_json(Knowledge, ['title', 'text', 'create_time'])

